The present invention relates generally to methods and apparatuses for operating telephone or data networks, and more particularly to a method and apparatus for operating a telephone or data network to enable modification of the parameters of a particular data flow while the data flow is in progress.
Under existing network processing routines, when a user places a call to the switch, or a data flow is established, the parameters of the data flow are established during call setup, such as bandwidth, resolution, etc. (As used herein, xe2x80x9cflowxe2x80x9d constitutes a data stream between two endpoints, any time after the call setup.) Once established, these parameters are not variable. To modify the parameters of a connection, the user must disconnect, establish contact with the network again and negotiate the revised parameters during call setup.
Normally, this is not a problem. However, as many users can attest, one can experience large delays when downloading a particularly large data file from the Internet. In some cases, users would be willing to pay a premium to reduce this delay. Unfortunately, it is not possible to enable these users to indicate their desire to the network and for the network to act on this desire once the flow has begun, unless the user disconnects, and reconnects to establish new flow parameters, which is very inefficient.
Another example occurs when a user would like to increase the resolution of a video conferencing call after the call has been initiated. Often, the resolution is sufficient for depicting who is at the other end of the call; however, such images are insufficient for displaying on a projector. If one wanted to increase the resolution only for the period when the images being displayed were being discussed, one could not do so under existing network operating routines.
The present invention is therefore directed to the problem of developing a method and apparatus for enabling a user to specify and modify the parameters of a flow after the flow has begun without requiring interruption of the flow.
The present invention solves this problem by providing a detector, in a switch in the network processing the flow and which detects the presence of a predetermined control packet in the flow. Upon detection of this control packet, the detector loads a particular software object from a library of objects into the switch or router. The software object is then immediately executed by the switch to process the flow. By loading the software object in the switch, a user of the switch is now permitted to request additional services from the switch after the data flow has been initiated, or to modify the flow parameters in a seamless manner.
According to the present invention, a method for processing a flow includes the steps of: (a) attaching a control packet to the flow, which control packet includes an instruction regarding a characteristic of the flow; (b) detecting the control packet in the flow in a network processing the flow; and (c) controlling the flow in the network based on the instruction in the control packet to obtain the desired characteristic.
An advantageous embodiment of the above method of the present invention further includes the steps of: (d) downloading a software object from a library of objects to a switch in the network based on the control packet; and (e) executing the software object in the switch to obtain the desired characteristic.
Another advantageous embodiment of the above method of the present invention further includes the step of transmitting information regarding services available at the switch to modify the flow to a user sending the flow upon detection of a predetermined control packet in the flow.
Yet another advantageous embodiment of the above method of the present invention further includes the steps of: (d) presenting a library of objects available to a user upon detection of a predetermined control packet in the flow; (e) receiving an indication from the user regarding a specific object in the library in the flow; (f) downloading the specific object in the library upon receipt of the indication from the user into a switch; and (g) executing the specific object in the switch immediately to control the flow.
Still another advantageous embodiment of the above method of the present invention includes the step of inserting a control packet in the flow at the customer premises equipment that indicates the user is requesting a listing of services available at a network switch for modifying the flow.
Another advantageous embodiment of the above method of the present invention further includes the step of transmitting a list of services available to modify the flow to the customer premises equipment upon detection of the control packet requesting the list inserted by the customer premises equipment.
More still, another advantageous embodiment of the above method of the present invention further includes the steps of: (d) routing the flow through a new route through the network based on information in the control packet; and (e) downloading user specific content/services to intermediate components of the new route dynamically without interrupting the flow.
According to the present invention, an apparatus for enabling a user to control a flow once the flow has been initiated in a network, includes a customer premises device, a detector and a processor. The customer premises device sends the flow to the network, creates a control packet including information regarding certain characteristics of the flow, and inserts the control packet into the flow. The detector is coupled to the customer premises equipment, disposed in the network, monitors the flow for the control packet, and detects the presence of the control packet. The processor is coupled to the detector, controls the flow in the network, receives an indication from the detector regarding the presence of the control packet, and executes a software routine based upon information contained in the control packet, which modifies the control of the flow in the network.
One embodiment of the above apparatus of the present invention further includes a library of software routines stored in the network, which routines are accessible by the detector and processor, and wherein a user specified software routine is downloaded into the processor and is immediately executed by the processor according to an identification of the user specified software routine included in the control packet.
Another embodiment of the above apparatus of the present invention further includes a database storing a library of software routines. The database is coupled to the detector and the processor. In this case, the detector sends a user specified software routine identification received in the control packet to the database, which downloads the user specified software routine into the processor, which routine is then immediately executed by the processor.
An alternate embodiment of the above apparatus of the present invention further includes database storing a library of software routines. The database is coupled to the detector and the processor. In this version, the detector sends a user specified software routine identification received in the control packet to the processor, which downloads and immediately executes the user specified software routine.